package com.home.andromotic;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.Toast;

import com.home.andromotic.model.IOIODevice;

public class ActividadEliminarDispositvos extends Activity {

	private int grupoPerfil;
	private AndromoticDbHelper dbHelper;
	private ExpandableListView listaCompuesta;
	private MyExpandableListAdapter adaptador;
	private Context context = this;
	
	//private ArrayList<Integer> listaDevicesId;
	//private Integer[] identidades;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.layout_eliminar_dispositivo);
		grupoPerfil = -1;
		Intent externo = getIntent();
		Bundle b = externo.getExtras();
		grupoPerfil = b.getInt("perfil");
		dbHelper = new AndromoticDbHelper(getApplicationContext());
		recargarLista();
		listaCompuesta.setOnChildClickListener(new OnChildClickListener() {
			@Override
			public boolean onChildClick(ExpandableListView parent, View v,
					 int groupPosition, int childPosition, long id) {
				 /*String print = "procesando";
				 Toast.makeText(getApplicationContext(),  print ,Toast.LENGTH_SHORT).show();*/		
				confirmacion(groupPosition, childPosition);
				
				return false;
			}
		});

	}
	
	private void confirmacion(int group, int child) {
		final int groupPosition = group;
		final int childPosition = child;

		AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
				context); 
		alertDialogBuilder.setTitle("Confirmacion"); 
		alertDialogBuilder
				.setMessage("Desea eliminar este dispositivo")
				.setCancelable(false)
				.setPositiveButton("Aceptar",new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog,int id) {
						String print = (String)adaptador.getChild(groupPosition, childPosition);
//						Toast.makeText(getApplicationContext(),  print ,
//								Toast.LENGTH_SHORT).show();
					   dbHelper.setRemoveDeviceByName( print );
					   recargarLista();
					}
				  })
				.setNegativeButton("No",new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog,int id) {
//						String print = "No se ha eliminado";
//						Toast.makeText(getApplicationContext(),  print ,
//								Toast.LENGTH_SHORT).show();
						dialog.cancel();
					}
				}); 
				AlertDialog alertDialog = alertDialogBuilder.create(); 
				alertDialog.show();
			}

	private void recargarLista() {
    	String[] zonas = { "Entrada", "Sala", "Comedor",
				"Habitacion principal", "Otra habitacion", "Otro espacio" };
		
		ArrayList<String>[] hijos = new ArrayList[6];				
		for(int i = 0 ; i < zonas.length ;i++){
			ArrayList<IOIODevice> listaDevicesId = dbHelper
					.getIOIODevicesByZone(i);
			hijos[i] = new ArrayList<String>();
			for(int j = 0 ; j < listaDevicesId.size() ; j++){
				hijos[i].add(listaDevicesId.get(j).getNombre());
			}				
		}		
		String[] nombresA = (String[]) hijos[0].toArray(new String[hijos[0].size()]);
		String[] nombresB = (String[]) hijos[1].toArray(new String[hijos[1].size()]);
		String[] nombresC = (String[]) hijos[2].toArray(new String[hijos[2].size()]);
		String[] nombresD = (String[]) hijos[3].toArray(new String[hijos[3].size()]);
		String[] nombresE = (String[]) hijos[4].toArray(new String[hijos[4].size()]);
		String[] nombresF = (String[]) hijos[5].toArray(new String[hijos[5].size()]);		
		String[][] dispositivos = { nombresA, nombresB, nombresC, nombresD, nombresE, nombresF };		
		if (dispositivos != null) {
			adaptador = new MyExpandableListAdapter(
					zonas, dispositivos);
			listaCompuesta = (ExpandableListView) findViewById(R.id.eliminar_device_list_exp);
			listaCompuesta.setAdapter(adaptador);
		}
	} // metodo	
	
	// Borrar despues
	private void tipoLargo(){
		ArrayList<IOIODevice> listaDevicesIdA = dbHelper
				.getIOIODevicesByZone(0);
		ArrayList<IOIODevice> listaDevicesIdB = dbHelper
				.getIOIODevicesByZone(1);
		ArrayList<IOIODevice> listaDevicesIdC = dbHelper
				.getIOIODevicesByZone(2);
		ArrayList<IOIODevice> listaDevicesIdD = dbHelper
				.getIOIODevicesByZone(3);
		ArrayList<IOIODevice> listaDevicesIdE = dbHelper
				.getIOIODevicesByZone(4);
		ArrayList<IOIODevice> listaDevicesIdF = dbHelper
				.getIOIODevicesByZone(5);		
			
		String[] nombresA = new String[listaDevicesIdA.size()];
		for(int i = 0 ; i < nombresA.length ; i++){
			nombresA[i] = listaDevicesIdA.get(i).getNombre();
		}
		String[] nombresB = new String[listaDevicesIdB.size()];
		for(int i = 0 ; i < nombresB.length ; i++){
			nombresB[i] = listaDevicesIdB.get(i).getNombre();
		}
		String[] nombresC = new String[listaDevicesIdC.size()];
		for(int i = 0 ; i < nombresC.length ; i++){
			nombresC[i] = listaDevicesIdC.get(i).getNombre();
		}
		String[] nombresD = new String[listaDevicesIdD.size()];
		for(int i = 0 ; i < nombresD.length ; i++){
			nombresD[i] = listaDevicesIdD.get(i).getNombre();
		}
		String[] nombresE = new String[listaDevicesIdE.size()];
		for(int i = 0 ; i < nombresE.length ; i++){
			nombresE[i] = listaDevicesIdE.get(i).getNombre();
		}
		String[] nombresF = new String[listaDevicesIdF.size()];
		for(int i = 0 ; i < nombresF.length ; i++){
			nombresF[i] = listaDevicesIdF.get(i).getNombre();
		}

		String[][] dispositivos2 = { nombresA, nombresB, nombresC, nombresD, nombresE, nombresF };		
	}
}

// listView = (ListView) findViewById(R.id.eliminar_device_list);
// String[] values = new String[] { "Entrada", "Sala", "Comedor",
// "Habitacion", "Jardin", "Otro espacio" };
//
//
// listaDevicesId = dbHelper.getDevicesByZone(0);
//
// values = new String[listaDevicesId.size()];
// identidades = new Integer[listaDevicesId.size()];
//
// for (int i = 0; i < listaDevicesId.size(); i++) {
// Log.v("Sacado DE LA BD", "" + ((Integer) listaDevicesId.get(i)));
// identidades[i] = (Integer) listaDevicesId.get(i);
// values[i] = dbHelper.getDeviceNameById((Integer) listaDevicesId.get(i));
// }
//
//
//
// ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
// android.R.layout.simple_list_item_1, android.R.id.text1, values);
// listView.setAdapter(adapter);

// listView.setOnItemClickListener(new OnItemClickListener() {
// @Override
// public void onItemClick(AdapterView<?> parent, View view,
// int position, long id) {
// Toast.makeText(getApplicationContext(), "Eliminando",
// Toast.LENGTH_SHORT).show();
//
// parent.getItemAtPosition(position);
// dbHelper.setRemoveDeviceById(identidades[position].intValue());
//
// recargarLista();
//
// }
// });

//for (int zonaid = 0; zonaid < zonas.length; zonaid++) {
//	listaDevicesId = dbHelper.getDevicesByZone(zonaid);
//	String[] values = new String[listaDevicesId.size()];
//	identidades = new Integer[listaDevicesId.size()];
//
//	ArrayList<String> ayuda = new ArrayList<String>();
//	// int i = 0;
//	for (int i = 0; i < listaDevicesId.size(); i++) {
//		// Log.v("Sacado DE LA BD", "" + ((Integer)
//		// listaDevicesId.get(i)));
//		// identidades[i] = (Integer) listaDevicesId.get(i);
//		values[i] = dbHelper.getDeviceNameById((Integer) listaDevicesId
//				.get(i));
//		ayuda.add(values[i]);
//	}
//	String[] arr = ayuda.toArray(new String[ayuda.size()]);
//
//	for (int j = 0; j < listaDevicesId.size(); j++) {
//		dispositivos[zonaid][j] = arr[j];
//	}
//
//}
